Strength Reduction for Loop-Invariant Types
نویسندگان
چکیده
Types are fundamental for enforcing levels of abstraction in modern high-level programming languages and their lower-level representations. However, some type-related features such as dynamic method calls and dynamic type casts can contribute substantially to the performance of a program. Loop-invariant type is a concept relating to an object whose dynamic type never changes inside a loop. In this case, operations on the type of the object may be redundant in the loop. As these operations often cause exceptions, existing redundancy elimination techniques usually fail to optimise them. This paper proposes a new approach to reducing the cost of two important operations on loop-invariant types: method tests and dynamic type checking. We demonstrate its usefulness and benefit in IBM’s Jikes RVM, a dynamic compilation system for Java.
منابع مشابه
Imperative-program transformation by instrumented-interpreter specialization
We describe how to implement strength reduction, loop-invariant code motion and loop quasi-invariant code motion by specializing instrumented interpreters. To curb code duplication intrinsic to such specialization, we introduce a new program transformation, rewinding , which uses Moore-automata minimization to remove duplicated code.
متن کاملEecient Symbolic Analysis for Optimizing Compilers ?
Because most of the execution time of a program is typically spend in loops, loop optimization is the main target of optimizing and restructuring compilers. An accurate determination of induction variables and dependencies in loops is of paramount importance to many loop optimization and parallelization techniques, such as generalized loop strength reduction, loop parallelization by induction v...
متن کاملEfficient Symbolic Analysis for Optimizing Compilers
Because most of the execution time of a program is typically spend in loops, loop optimization is the main target of optimizing and restructuring compilers. An accurate determination of induction variables and dependencies in loops is of paramount importance to many loop optimization and parallelization techniques, such as generalized loop strength reduction, loop parallelization by induction v...
متن کاملSymbolic Evaluation of Chains of Recurrences for Loop Optimization
This paper presents a novel method for loop optimization that exploits symbolic evaluation of chains of recurrences (CRs). The method generalizes loop induction expression recognition, loop parallelization by induction variable substitution, loop strength reduction , and loop invariant expression elimination (code motion). Symbolic diierencing of loops has been extensively studied by Haghighat ...
متن کاملCharacterization of Program Loops in Code Optimization
-Recent work in code optimization has led to development of new unified optimizing transformations[6,7]. Application of these transformations requires solution of bi-directional data flow problems over program flow graphs using iterative solution techniques. Appropriate characterization of program loops in the flow graph is necessary so as (i) not to hinder code movement, etc., and (ii) restric...
متن کامل